import request from '@/utils/axios'

export type SmsTemplateType = {
  id?: number
  type?: number
  status: number
  code: string
  name: string
  content: string
  remark: string
  apiTemplateId: string
  channelId?: number
  channelCode?: string
  params?: string[]
  create_time?: Date
}

export interface SmsTemplatePageReqType extends PageParam {
  type?: number
  status?: number
  code?: string
  apiTemplateId?: number
  channelId?: number
  create_time?: Date[]
}

export interface SendSmsReqType {
  mobile: string
  templateCode: string
  templateParams: Map<string, object>
}

/**
 * 消息中心 - 短信管理 - 短信模板接口
 */
export const SmsTemplateApi = {
  // 新增
  create: (data: SmsTemplateType) => {
    return request.post({ url: '/system/sms-template/create', data, is_mock: true })
  },
  // 修改
  update: (data: SmsTemplateType) => {
    return request.put({ url: '/system/sms-template/update', data, is_mock: true })
  },
  // 删除
  delete: (id: number) => {
    return request.delete({ url: '/system/sms-template/delete?id=' + id, is_mock: true })
  },
  // 查询详情
  detail: (id: number) => {
    return request.get({ url: '/system/sms-template/detail?id=' + id, is_mock: true })
  },
  // 查询分页列表
  page: (params: SmsTemplatePageReqType) => {
    return request.get({ url: '/system/sms-template/page', params, is_mock: true })
  },
  // 发送短信
  send: (data: SendSmsReqType) => {
    return request.post({ url: '/system/sms-template/send-sms', data, is_mock: true })
  },
  // 导出短信模板
  export: (params: SmsTemplatePageReqType) => {
    return request.get({ url: '/system/sms-template/export', params, is_mock: true })
  }
}
